package com.alks.function.data.dto.finance.statement;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;

/**
 * @author:hxl
 * @create: 2025-01-16 14:53
 * @Description:
 */
public class DhReceiptDetailDto {
    private String creditNo;

    private BigDecimal additionalCost;
    private String receiptNo;

    private String orderType;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date outShip;

    private BigDecimal recAmt;
    private BigDecimal arAmt;
    private String customsInvNo;
    private String custInvNo;
    private String custom;
    private BigDecimal outAmt;

    private String destPort;

    private String exportType;

    private String arType;

    private String invoiceNo;
    private String currency;
    private String remark;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date deliveryDate;
    private BigDecimal outQty;
    private BigDecimal premium;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date outDate;

    public BigDecimal getPremium() {
        return premium;
    }

    public void setPremium(BigDecimal premium) {
        this.premium = premium.setScale(2, RoundingMode.HALF_UP);
    }

    public Date getDeliveryDate() {
        return deliveryDate;
    }

    public void setDeliveryDate(Date deliveryDate) {
        this.deliveryDate = deliveryDate;
    }

    public BigDecimal getOutQty() {
        return outQty.setScale(2, RoundingMode.HALF_UP);
    }

    public void setOutQty(BigDecimal outQty) {
        this.outQty = outQty;
    }

    public void setReceiptNo(String receiptNo) {
        this.receiptNo = receiptNo;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }

    public void setShipDate(Date outShip) {
        this.outShip = outShip;
    }

    public void setRecAmt(BigDecimal recAmt) {
        this.recAmt = recAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setArAmt(BigDecimal arAmt) {
        this.arAmt = arAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setCustomsInvNo(String customsInvNo) {
        this.customsInvNo = customsInvNo;
    }

    public void setCustInvNo(String custInvNo) {
        this.custInvNo = custInvNo;
    }

    public void setDestPort(String destPort) {
        this.destPort = destPort;
    }

    public void setExportType(String exportType) {
        this.exportType = exportType;
    }

    public void setArType(String arType) {
        this.arType = arType;
    }

    public void setInvoiceNo(String invoiceNo) {
        this.invoiceNo = invoiceNo;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getReceiptNo() {
        return receiptNo;
    }

    public String getOrderType() {
        return orderType;
    }

    public Date getShipDate() {
        return outShip;
    }

    public BigDecimal getRecAmt() {
        return recAmt;
    }

    public BigDecimal getArAmt() {
        return arAmt;
    }

    public String getCustomsInvNo() {
        return customsInvNo;
    }

    public String getCustInvNo() {
        return custInvNo;
    }

    public String getDestPort() {
        return destPort;
    }

    public String getExportType() {
        return exportType;
    }

    public String getArType() {
        return arType;
    }

    public String getInvoiceNo() {
        return invoiceNo;
    }

    public String getCurrency() {
        return currency;
    }

    public String getRemark() {
        return remark;
    }

    public DhReceiptDetailDto() {
    }

    public String getCustom() {
        return custom;
    }

    public void setCustom(String custom) {
        this.custom = custom;
    }

    public Date getOutShip() {
        return outShip;
    }

    public void setOutShip(Date outShip) {
        this.outShip = outShip;
    }

    public BigDecimal getOutAmt() {
        return outAmt.setScale(2, RoundingMode.HALF_UP);
    }

    public void setOutAmt(BigDecimal outAmt) {
        this.outAmt = outAmt.setScale(2, RoundingMode.HALF_UP);
    }

    public String getCreditNo() {
        return creditNo;
    }

    public void setCreditNo(String creditNo) {
        this.creditNo = creditNo;
    }

    public BigDecimal getAdditionalCost() {
        return additionalCost;
    }

    public void setAdditionalCost(BigDecimal additionalCost) {
        this.additionalCost = additionalCost;
    }

    public Date getOutDate() {
        return outDate;
    }

    public void setOutDate(Date outDate) {
        this.outDate = outDate;
    }
}
